package tragame.server.interfaces;



import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

import tragame.game.Building;
import tragame.game.Resource.ResourceType;
import tragame.game.Village.Race;

public interface IVillage extends Remote {

		public String getPlayer() throws RemoteException;
		public String getName() throws RemoteException;
		public Race getRace()throws RemoteException;
		
		public int[] getPosition()throws RemoteException;
		
		public ResourceType getResource(int pos) throws RemoteException;
		
		public ArrayList<Integer> getResourcePosition(ResourceType type)throws RemoteException ;
		
		public int getFoodParts() throws RemoteException;
		
		
		public int getCurFood() throws RemoteException;
		
		public int getCurIron() throws RemoteException;
		
		public int getCurSoil() throws RemoteException;
		
		public int getCurWood()throws RemoteException ;
		
		
		public int getProdFood() throws RemoteException;
		
		
		public int getProdIron() throws RemoteException;
		
		public int getProdSoil()throws RemoteException;
		
		public int getProdWood() throws RemoteException;
		
		
		public int getMaxFood()throws RemoteException;
		
		
		public int getMaxIron() throws RemoteException;
		
		
		public int getMaxSoil() throws RemoteException;
		
		public int getMaxWood() throws RemoteException;
		
		public boolean bindBuilding(int number)throws RemoteException;
		
		
		public void setName(String name)throws RemoteException;
		
		public void setRace(Race race) throws RemoteException;
		
		
		public void setFoodParts(int foodParts) throws RemoteException;
		
		
		public void setMaxFood(int maxFood) throws RemoteException;
		
		
		public void setMaxIron(int maxIron)throws RemoteException;
		
		
		public void setMaxSoil(int maxSoil) throws RemoteException;
		
		
		public void setMaxWood(int maxWood) throws RemoteException;
		
		public void upgradeBuilding(int number)throws RemoteException;
		
		public void createBuilding(int number)throws RemoteException;
		
		public Building getBuilding(int number)throws RemoteException;
	}


